#ifndef _mathex_h
#define _mathex_h

#include <math.h>

#define EPSILON 1.0e-8
#define ZERO EPSILON
#define M_PI 3.1415926535

template<class T> inline T limit(const T& x, const T& lower, const T& upper)
{
	if (x < lower)
		return lower;

	if (x > upper)
		return upper;

	return x;
}


template<class T> inline T sqr(const T& x)
{
	return x * x;
}


template<class T> inline T RadToDeg(const T& rad)
{
	return (rad * 180.0) / M_PI;
}


template<class T> inline T DegToRad(const T& deg)
{
	return (deg * M_PI) / 180.0;
}

#endif

